<template>
  <div id="nav">
     <router-view v-slot="{Component}"> 
       <transition :name="animation">
        <keep-alive>
          <component :is="Component"></component>
        </keep-alive>
       </transition>
     </router-view>

    <router-link to="/">Home</router-link> |
    <router-link to="/about">About</router-link>
  </div>
 
</template>

<script>
import {ref, watch} from 'vue'
import { useRoute } from 'vue-router'
export default{
name:'App',
setup(){
  let animation=ref('slide')
  const route=useRoute()

  let routeIndex=route.meta.index

  watch(route,()=>{
    animation.value= route.meta.index<routeIndex?'slide-right':'slide-left'
     routeIndex=route.meta.index
  })

//阻止右键默认行为
document.addEventListener("contextmenu",(e)=>{
  e.preventDefault()
})

  return {animation}

}

}

</script>

<style lang="scss">
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
}

#nav {
  padding: 30px;

  a {
    font-weight: bold;
    color: #2c3e50;

    &.router-link-exact-active {
      color: #42b983;
    }
  }
}
</style>
